<?php
session_start();

// ==========================================
// CONFIGURAÇÕES DO GOOGLE OAUTH
// ==========================================
$client_id = '440989419991-q6puthrr3738j0c33a46f8ucgue0mrb9.apps.googleusercontent.com';
$client_secret = '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';
$redirect_uri = 'https://wifi.esuda.edu.br/index.php'; 

// ==========================================
// 1. CAPTURAR DADOS DO OPENNDS
// ==========================================
if (isset($_GET['fas'])) {
    $fas_decoded = base64_decode($_GET['fas']);
    parse_str($fas_decoded, $opennds_data);
    
    $_SESSION['tok'] = $opennds_data['tok'] ?? '';
    $_SESSION['redir'] = $opennds_data['redir'] ?? 'https://www.google.com';
    $_SESSION['gatewayaddress'] = $opennds_data['gatewayaddress'] ?? '172.18.1.1:2050';
} elseif (isset($_GET['tok'])) {
    $_SESSION['tok'] = $_GET['tok'];
    $_SESSION['redir'] = $_GET['redir'] ?? 'https://www.google.com';
    $_SESSION['gatewayaddress'] = $_GET['gatewayaddress'] ?? '172.18.1.1:2050';
}

// ==========================================
// 2. VALIDAÇÃO DE VOUCHER (VISITANTES)
// ==========================================
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['voucher'])) {
    $voucher_digitado = strtoupper(trim($_POST['voucher']));

    // Lista temporária de vouchers válidos (Futuramente podemos ligar a um Banco de Dados)
    $vouchers_validos = ['VISITA2026', 'PALESTRANTE', 'ESUDA123'];

    if (in_array($voucher_digitado, $vouchers_validos)) {
        // VOUCHER VÁLIDO! Libera a internet
        $liberar_url = "http://" . $_SESSION['gatewayaddress'] . "/opennds_auth/?tok=" . $_SESSION['tok'] . "&redir=" . urlencode($_SESSION['redir']);
        header("Location: $liberar_url");
        exit();
    } else {
        $erro_msg = "Voucher inválido ou expirado.";
    }
}

// ==========================================
// 3. RETORNO DO GOOGLE COM O CÓDIGO (LOGIN ALUNOS/STAFF)
// ==========================================
if (isset($_GET['code'])) {
    $code = $_GET['code'];

    $post_fields = [
        'code' => $code,
        'client_id' => $client_id,
        'client_secret' => $client_secret,
        'redirect_uri' => $redirect_uri,
        'grant_type' => 'authorization_code'
    ];

    $ch = curl_init('https://oauth2.googleapis.com/token');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_fields));
    $response = curl_exec($ch);
    curl_close($ch);
    
    $token_data = json_decode($response, true);

    if (isset($token_data['access_token'])) {
        $ch = curl_init('https://www.googleapis.com/oauth2/v2/userinfo');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, ['Authorization: Bearer ' . $token_data['access_token']]);
        $user_info = json_decode(curl_exec($ch), true);
        curl_close($ch);

        if (isset($user_info['email'])) {
            $email = $user_info['email'];
            $dominio = explode('@', $email)[1];

            if ($dominio === 'esuda.edu.br' || $dominio === 'esuda.com.br') {
                $liberar_url = "http://" . $_SESSION['gatewayaddress'] . "/opennds_auth/?tok=" . $_SESSION['tok'] . "&redir=" . urlencode($_SESSION['redir']);
                header("Location: $liberar_url");
                exit();
            } else {
                $erro_msg = "Acesso negado. Utilize um e-mail institucional.";
            }
        }
    } else {
        $erro_msg = "Erro ao autenticar com o Google. Tente novamente.";
    }
}

// Gera o link de login do Google
$google_login_url = 'https://accounts.google.com/o/oauth2/v2/auth?' . http_build_query([
    'client_id' => $client_id,
    'redirect_uri' => $redirect_uri,
    'response_type' => 'code',
    'scope' => 'email profile',
    'prompt' => 'select_account'
]);
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Wi-Fi Faculdade ESUDA</title>
    <style>
        body { font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; background-color: #f4f4f4; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; }
        .container { background: #fff; padding: 40px; border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,0.1); text-align: center; max-width: 400px; width: 90%; }
        h1 { color: #800000; font-size: 24px; margin-bottom: 10px; }
        p { color: #555; margin-bottom: 30px; font-size: 15px; }
        .btn-google { background-color: #4285F4; color: white; padding: 12px 24px; border: none; border-radius: 5px; font-size: 16px; cursor: pointer; text-decoration: none; display: inline-block; font-weight: bold; width: 100%; box-sizing: border-box; }
        .btn-google:hover { background-color: #357ae8; }
        .btn-voucher { background-color: #28a745; color: white; padding: 12px 24px; border: none; border-radius: 5px; font-size: 16px; cursor: pointer; width: 100%; font-weight: bold; }
        .btn-voucher:hover { background-color: #218838; }
        .input-voucher { padding: 12px; width: 100%; margin-bottom: 15px; border: 1px solid #ccc; border-radius: 5px; box-sizing: border-box; font-size: 16px; text-align: center; text-transform: uppercase; }
        .erro { color: #d9534f; background: #f2dede; padding: 10px; border-radius: 5px; margin-bottom: 20px; font-size: 14px; font-weight: bold; }
        .divisor { margin: 30px 0; border: 0; border-top: 1px solid #ddd; }
    </style>
</head>
<body>
    <div class="container">
        <h1>Wi-Fi Faculdade ESUDA</h1>
        <p>Faça login com seu e-mail institucional para acessar a rede.</p>
        
        <?php if (isset($erro_msg)): ?>
            <div class="erro"><?php echo $erro_msg; ?></div>
        <?php endif; ?>

        <a href="<?php echo $google_login_url; ?>" class="btn-google">Entrar com o Google</a>

        <hr class="divisor">

        <p style="margin-bottom: 15px;">É visitante? Insira seu código de acesso:</p>
        <form method="POST" action="">
            <input type="text" name="voucher" class="input-voucher" placeholder="Digite o Voucher" required>
            <button type="submit" class="btn-voucher">Acessar com Voucher</button>
        </form>
    </div>
</body>
</html>
